<!DOCTYPE html>
<html lang="en-US">
    <head>
        <title>Email::Abstract - unified interface to mail representations - metacpan.org</title>
        <link rel="preload" as="fetch" href="https://metacpan.org/account/login_status" crossorigin="anonymous" />
        <link href="https://metacpan.org/_assets/b8ccceeed47a0652049703d99326a9cea4933443.css" rel="stylesheet" type="text/css">
        <script src="https://metacpan.org/_assets/6bfedafe2d7caa915b7d84f61b45936818e3242e.js" type="text/javascript" defer></script>
        <link rel="alternate" type="application/rss+xml" title="Recent CPAN Uploads of Email-Abstract - MetaCPAN" href="https://metacpan.org/dist/Email-Abstract/releases.rss" />
        <link rel="canonical" href="./Email::Abstract.html" />
        <meta name="description" content="unified interface to mail representations" />
        <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=5">
        <link rel="shortcut icon" href="https://metacpan.org/static/icons/favicon.ico">
        <link rel="apple-touch-icon" sizes="152x152" href="https://metacpan.org/static/icons/apple-touch-icon.png">
        <link rel="search" href="https://metacpan.org/static/opensearch.xml" type="application/opensearchdescription+xml" title="MetaCPAN">
        <script>
          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

          (function(skey, ga_id){
            ga('create', ga_id, {
              siteSpeedSampleRate : 100,
              storage             : 'none',
              clientId            : localStorage.getItem(skey)
            });
            ga(function(tracker) {
              localStorage.setItem(skey, tracker.get('clientId'));
            });
            ga('send', 'pageview');
          })('ga:clientId', 'UA-27829474-1');
        </script>
<meta name="twitter:card"        content="summary" />
<meta name="twitter:url"         content="https://metacpan.org/pod/Email::Abstract" />
<meta name="twitter:title"       content="Email::Abstract" />
<meta name="twitter:description" content="unified interface to mail representations" />
<meta name="twitter:site"        content="metacpan" />
    </head>
    <body>
        <nav class="navbar navbar-default" role="navigation">
            <div class="header-logo-large hidden-xs">
              <a href="https://metacpan.org/" tabindex="0">
                <svg class="logo" aria-label="MetaCPAN">
                  <use class="logo" href="/static/images/metacpan-logo.svg#logo" />
                </svg>
              </a>
            </div>
            <div class="header-logo-icon visible-xs">
              <a href="https://metacpan.org/">
                <svg class="logo" aria-label="MetaCPAN">
                  <use class="logo" href="/static/images/metacpan-logo.svg#dots" />
                </svg>
              </a>
            </div>
            <ul class="nav navbar-nav menu-items hidden-xs hidden-sm">
              <li><a href="https://metacpan.org/about">About</a></li>
              <li><a href="https://metacpan.org/about/sponsors">Sponsor</a></li>
              <li><a href="https://grep.metacpan.org/">grep::cpan</a></li>
              <li><a href="https://metacpan.org/recent">Recent</a></li>
              <li><a href="https://metacpan.org/about/faq">FAQ</a></li>
              <li><a href="https://metacpan.org/tools">Tools</a></li>
              <li><a href="https://fastapi.metacpan.org/">API</a></li>
            </ul>
            <ul class="nav navbar-nav navbar-right">
                <button type="button" class="searchbar-btn visible-xs visible-sm">
                    <i class="fa fa-search button-fa-icon"></i>
                </button>
                <form action="https://metacpan.org/search" class="searchbar-form visible-md visible-lg search-form form-horizontal">
                   <input type="hidden" name="size" id="metacpan_search-size" value="20">
                  <div class="form-group">
                      <div class="search-group">
                        <i class="fa fa-search"></i>
                        <input type="text" name="q" placeholder="Search the CPAN" size="41" autocorrect="off" autocapitalize="off" spellcheck="false" id="metacpan_search-input" class="form-control" value="">
                      </div>
                  </div>
                </form>
                    <li class="icon-slidepanel visible-xs visible-sm">
                      <button data-toggle="slidepanel" data-target=".slidepanel">
                        <span class="button-fa-icon">
                          <i class="fa fa-bars slidepanel-open"></i>
                          <i class="fa fa-times slidepanel-close"></i>
                        </span>
                      </button>
                    </li>
                <form action="https://metacpan.org/account/logout" method="POST" id="metacpan-logout"></form>
                <li class="dropdown logged_in" style="display: none;">
                    <button type="button" class="dropdown-toggle" data-toggle="dropdown">
                      <i class="fa fa-user button-fa-icon logged-in-icon" aria-hidden="true"></i>
                      <i class="fas fa-chevron-down"></i>
                    </button>
                    <ul class="dropdown-menu">
                        <li><a href="https://metacpan.org/account/identities">Identities</a></li>
                        <li><a href="https://metacpan.org/account/profile">Profile</a></li>
                        <li><a href="https://metacpan.org/account/favorite/list">Favorites</a></li>
                        <li>
                            <a href="./Email::Abstract.html#" type="button" onclick="$('#metacpan-logout').submit(); return false">
                              Logout
                            </a>
                        </li>
                    </ul>
                </li>
                <li class="dropdown logged_out" style="display: none;">
                    <button type="button" class="dropdown-toggle" data-toggle="dropdown">
                      <i class="fa fa-user button-fa-icon" aria-hidden="true"></i>
                      <i class="fas fa-chevron-down"></i>
                    </button>
                    <ul class="dropdown-menu">
                        <li>
                            <a href="https://metacpan.org/login/github">
                                <i class="fab fa-github fa-fw"></i>
                                GitHub
                            </a>
                        </li>
                        <li>
                            <a href="https://metacpan.org/login/twitter">
                                <i class="fab fa-twitter fa-fw"></i>
                                Twitter
                            </a>
                        </li>
                        <li>
                            <a href="https://metacpan.org/login/google">
                                <i class="fab fa-google fa-fw"></i>
                                Google
                            </a>
                        </li>
                    </ul>
                </li>
                <li class="dropdown logged_placeholder">
                    <button>
                      <i class="fa fa-user button-fa-icon" aria-hidden="true"></i>
                    </button>
                </li>
            </ul>
        </nav>
        <div class="page-content ">
          <!--
          <div class="top-notify-banner">
            <i class="fas fa-info-circle"></i>
          </div>
          -->
          <nav class="sidebar">
            <div class="slidepanel">
              <ul class="nav-list ">
    <li class="nav-header no-margin-top">
      <div class="ttip" data-toggle="tooltip" data-placement="bottom" title="The date that this version of Email-Abstract was released.">
      <span class="relatize">03 Sep 2023 00:22:32 UTC</span>
    </li>
  <li>
    Distribution: <a href="https://metacpan.org/dist/Email-Abstract">Email-Abstract</a>
  </li>
  <li>
    Module version: 3.010
  </li>
  <li>
    <a data-keyboard-shortcut="g s" href="https://metacpan.org/dist/Email-Abstract/source/lib/Email/Abstract.pm">Source</a>
    (<a href="https://metacpan.org/dist/Email-Abstract/source/lib/Email/Abstract.pm?raw=1">raw</a>)
  </li>
  <li>
    <a data-keyboard-shortcut="g b" href="https://metacpan.org/dist/Email-Abstract/source/lib/Email">Browse</a>
    (<a href="https://metacpan.org/dist/Email-Abstract/source/lib/Email?raw=1">raw</a>)
  </li>
    <li>
      <a data-keyboard-shortcut="g c" href="https://metacpan.org/dist/Email-Abstract/changes">Changes</a>
    </li>
    <li>
      <a rel="noopener nofollow" class="nopopup" href="https://github.com/rjbs/Email-Abstract">Homepage</a>
    </li>
    <li>
      <a class="nopopup" href="https://metacpan.org/dist/Email-Abstract/contribute">How to Contribute</a>
    </li>
    <li>
        <a rel="noopener nofollow" data-keyboard-shortcut="g r" href="https://github.com/rjbs/Email-Abstract">Repository</a>
    </li>
    <li>
      <a rel="noopener nofollow" data-keyboard-shortcut="g i" href="https://github.com/rjbs/Email-Abstract/issues">Issues</a>
      (1)
    </li>
    <li>
      <a rel="noopener nofollow" href="http://matrix.cpantesters.org/?dist=Email-Abstract+3.010" title="Matrix">Testers</a>
        <span title="(pass / fail / na)">(<a rel="noopener nofollow" href="https://www.cpantesters.org/distro/E/Email-Abstract.html?oncpan=1&amp;distmat=1&amp;version=3.010&amp;grade=2" style="color: #090">1638</a> / <a rel="noopener nofollow" href="https://www.cpantesters.org/distro/E/Email-Abstract.html?oncpan=1&amp;distmat=1&amp;version=3.010&amp;grade=3" style="color: #900">0</a> / <a rel="noopener nofollow" href="https://www.cpantesters.org/distro/E/Email-Abstract.html?oncpan=1&amp;distmat=1&amp;version=3.010&amp;grade=4">0</a>)</span>
    </li>
    <li>
      <a rel="noopener nofollow" href="http://cpants.cpanauthors.org/release/RJBS/Email-Abstract-3.010">Kwalitee</a>
    </li>
    <li>
      <div class="ttip" data-toggle="tooltip" data-placement="bottom" title="The # people with an indexing permission on Email-Abstract who have released something to CPAN in the last 2 years (i.e. the # people likely able to release critical fixes in a timely manner)">
      Bus factor: 1
      </div>
    </li>
    <li>
      <a rel="noopener nofollow" href="http://cpancover.com/latest/Email-Abstract-3.010/index.html">65.24% Coverage </a>
    </li>
    <li>
      License: perl_5
    </li>
    <li>
      Perl: v5.6.0
    </li>
    <li class="nav-header">Activity</li>
    <li>
<div class="activity-graph">
    <img src="https://metacpan.org/dist/Email-Abstract/activity.svg?res=month" />
    <div class="comment">24 month</div>
</div>
    </li>
    <li class="nav-header">Tools</li>
    <li>
      <a itemprop="downloadUrl" href="https://cpan.metacpan.org/authors/id/R/RJ/RJBS/Email-Abstract-3.010.tar.gz">
      Download (<span itemprop="fileSize">27.72KB</span>)</a>
    </li>
    <li>
      <a href="https://explorer.metacpan.org/?url=%2Fmodule%2FRJBS%2FEmail-Abstract-3.010%2Flib%2FEmail%2FAbstract.pm">
        MetaCPAN Explorer
      </a>
    </li>
    <li>
      <a href="https://metacpan.org/dist/Email-Abstract/permissions">
        Permissions
      </a>
    </li>
    <li>
      <a href="https://metacpan.org/dist/Email-Abstract/releases.rss">
        Subscribe to distribution
      </a>
    </li>
    <li>
      <button class="btn btn-link" data-toggle="modal" data-target="#metacpan_install-instructions-dialog">
        Install Instructions
      </button>
    </li>
    <li>
      <form action="https://metacpan.org/search">
        <input type="hidden" name="q" value="dist:Email-Abstract">
        <input type="search" name="q" placeholder="Search distribution" class="form-control tool-bar-form">
        <input type="submit" style="display: none">
      </form>
    </li>
    <li>
      <form action="https://grep.metacpan.org/search">
        <input type="hidden" name="qd" value="Email-Abstract">
        <input type="hidden" name="source" value="metacpan">
        <input type="search" name="q" placeholder="grep distribution" class="form-control tool-bar-form">
        <input type="submit" style="display: none">
     </form>
    </li>
    <li class="version-jump">
<select onchange="document.location.href=&#39;/release/&#39;+this.value+&#39;/view/lib/Email/Abstract.pm&#39;" class="form-control tool-bar-form">
  <option disabled selected>Jump to version</option>
<option
  disabled
  value="RJBS/Email-Abstract-3.010"
>3.010
  (RJBS on 2023-09-03)</option>
<option
  
  value="RJBS/Email-Abstract-3.009"
>3.009
  (RJBS on 2021-06-20)</option>
<option
  
  value="CWEST/Email-Abstract-2.01"
>2.01
  (CWEST on 2004-11-05)</option>
<option
  
  value="SIMON/Email-Abstract-2.0"
>2.0
  (SIMON on 2004-08-25)</option>
<option
  
  value="SIMON/Email-Abstract-1.0"
>1.0
  (SIMON on 2004-05-27)</option>
<optgroup label="BackPAN">'
<option
  
  value="RJBS/Email-Abstract-3.008"
>3.008
  (RJBS on 2014-12-27)</option>
<option
  
  value="RJBS/Email-Abstract-3.007"
>3.007
  (RJBS on 2013-12-31)</option>
<option
  
  value="RJBS/Email-Abstract-3.006"
>3.006
  (RJBS on 2013-09-01)</option>
<option
  
  value="RJBS/Email-Abstract-3.005"
>3.005
  (RJBS on 2013-07-30)</option>
<option
  
  value="RJBS/Email-Abstract-3.004"
>3.004
  (RJBS on 2011-02-18)</option>
<option
  
  value="RJBS/Email-Abstract-3.003"
>3.003
  (RJBS on 2010-11-08)</option>
<option
  
  value="RJBS/Email-Abstract-3.002"
>3.002
  (RJBS on 2010-06-12)</option>
<option
  
  value="RJBS/Email-Abstract-3.001"
>3.001
  (RJBS on 2008-12-11)</option>
<option
  
  value="RJBS/Email-Abstract-3.000"
>3.000
  (RJBS on 2008-12-09)</option>
<option
  
  value="RJBS/Email-Abstract-2.134"
>2.134
  (RJBS on 2007-11-16)</option>
<option
  
  value="RJBS/Email-Abstract-2.133_05"
>2.133_05 DEV
  (RJBS on 2007-11-12)</option>
<option
  
  value="RJBS/Email-Abstract-2.133_04"
>2.133_04 DEV
  (RJBS on 2007-09-24)</option>
<option
  
  value="RJBS/Email-Abstract-2.133_03"
>2.133_03 DEV
  (RJBS on 2007-08-01)</option>
<option
  
  value="RJBS/Email-Abstract-2.133_02"
>2.133_02 DEV
  (RJBS on 2007-07-23)</option>
<option
  
  value="RJBS/Email-Abstract-2.133_01"
>2.133_01 DEV
  (RJBS on 2007-07-19)</option>
<option
  
  value="RJBS/Email-Abstract-2.132"
>2.132
  (RJBS on 2007-03-22)</option>
<option
  
  value="RJBS/Email-Abstract-2.131"
>2.131
  (RJBS on 2006-08-22)</option>
<option
  
  value="RJBS/Email-Abstract-2.13"
>2.13
  (RJBS on 2006-07-24)</option>
<option
  
  value="RJBS/Email-Abstract-2.12"
>2.12
  (RJBS on 2006-07-24)</option>
<option
  
  value="RJBS/Email-Abstract-2.11"
>2.11
  (RJBS on 2006-07-22)</option>
<option
  
  value="RJBS/Email-Abstract-2.10"
>2.10
  (RJBS on 2006-07-21)</option>
</optgroup>
</select>
    </li>
    <li class="version-diff">
<select onchange="document.location.href='/release/RJBS/Email-Abstract-3.010/diff/' + encodeURIComponent(this.value) + '/lib/Email/Abstract.pm'
" class="form-control tool-bar-form">
  <option disabled selected>Diff with version</option>
<option
  disabled
  value="RJBS/Email-Abstract-3.010"
>3.010
  (RJBS on 2023-09-03)</option>
<option
  
  value="RJBS/Email-Abstract-3.009"
>3.009
  (RJBS on 2021-06-20)</option>
<option
  
  value="CWEST/Email-Abstract-2.01"
>2.01
  (CWEST on 2004-11-05)</option>
<option
  
  value="SIMON/Email-Abstract-2.0"
>2.0
  (SIMON on 2004-08-25)</option>
<option
  
  value="SIMON/Email-Abstract-1.0"
>1.0
  (SIMON on 2004-05-27)</option>
<optgroup label="BackPAN">'
<option
  
  value="RJBS/Email-Abstract-3.008"
>3.008
  (RJBS on 2014-12-27)</option>
<option
  
  value="RJBS/Email-Abstract-3.007"
>3.007
  (RJBS on 2013-12-31)</option>
<option
  
  value="RJBS/Email-Abstract-3.006"
>3.006
  (RJBS on 2013-09-01)</option>
<option
  
  value="RJBS/Email-Abstract-3.005"
>3.005
  (RJBS on 2013-07-30)</option>
<option
  
  value="RJBS/Email-Abstract-3.004"
>3.004
  (RJBS on 2011-02-18)</option>
<option
  
  value="RJBS/Email-Abstract-3.003"
>3.003
  (RJBS on 2010-11-08)</option>
<option
  
  value="RJBS/Email-Abstract-3.002"
>3.002
  (RJBS on 2010-06-12)</option>
<option
  
  value="RJBS/Email-Abstract-3.001"
>3.001
  (RJBS on 2008-12-11)</option>
<option
  
  value="RJBS/Email-Abstract-3.000"
>3.000
  (RJBS on 2008-12-09)</option>
<option
  
  value="RJBS/Email-Abstract-2.134"
>2.134
  (RJBS on 2007-11-16)</option>
<option
  
  value="RJBS/Email-Abstract-2.133_05"
>2.133_05 DEV
  (RJBS on 2007-11-12)</option>
<option
  
  value="RJBS/Email-Abstract-2.133_04"
>2.133_04 DEV
  (RJBS on 2007-09-24)</option>
<option
  
  value="RJBS/Email-Abstract-2.133_03"
>2.133_03 DEV
  (RJBS on 2007-08-01)</option>
<option
  
  value="RJBS/Email-Abstract-2.133_02"
>2.133_02 DEV
  (RJBS on 2007-07-23)</option>
<option
  
  value="RJBS/Email-Abstract-2.133_01"
>2.133_01 DEV
  (RJBS on 2007-07-19)</option>
<option
  
  value="RJBS/Email-Abstract-2.132"
>2.132
  (RJBS on 2007-03-22)</option>
<option
  
  value="RJBS/Email-Abstract-2.131"
>2.131
  (RJBS on 2006-08-22)</option>
<option
  
  value="RJBS/Email-Abstract-2.13"
>2.13
  (RJBS on 2006-07-24)</option>
<option
  
  value="RJBS/Email-Abstract-2.12"
>2.12
  (RJBS on 2006-07-24)</option>
<option
  
  value="RJBS/Email-Abstract-2.11"
>2.11
  (RJBS on 2006-07-22)</option>
<option
  
  value="RJBS/Email-Abstract-2.10"
>2.10
  (RJBS on 2006-07-21)</option>
</optgroup>
</select>
    </li>

    <li>
<ul class="dependencies">
  <li class="nav-header">Dependencies</li>
  <li><a href="https://metacpan.org/pod/Carp" title="Carp" class="ellipsis">Carp</a></li>
  <li><a href="https://metacpan.org/pod/Email::Simple" title="Email::Simple" class="ellipsis">Email::Simple</a></li>
  <li><a href="./MRO::Compat.html" title="MRO::Compat" class="ellipsis">MRO::Compat</a></li>
  <li><a href="./Module::Pluggable.html" title="Module::Pluggable" class="ellipsis">Module::Pluggable</a></li>
  <li><a href="https://metacpan.org/pod/Scalar::Util" title="Scalar::Util" class="ellipsis">Scalar::Util</a></li>
  <li><a href="https://metacpan.org/pod/strict" title="strict" class="ellipsis">strict</a></li>
  <li><a href="https://metacpan.org/pod/warnings" title="warnings" class="ellipsis">warnings</a></li>
  <li>
    <hr>
  </li>
  <li>
    <a href="https://metacpan.org/module/Email::Abstract/requires">Reverse dependencies</a>
  </li>
  <li>
    <a href="http://deps.cpantesters.org/?module=Email%3A%3AAbstract">CPAN Testers List</a>
  </li>
  <li>
    <a href="https://cpandeps.grinnz.com/?dist=Email-Abstract">Dependency graph</a>
  </li>
</ul>
    </li>
    <li class="nav-header">Permalinks</li>
    <li>
      <a href="https://metacpan.org/release/RJBS/Email-Abstract-3.010/view/lib/Email/Abstract.pm">This version</a>
    </li>
    <li>
      <a href="./Email::Abstract.html">Latest version</a>
    </li>
    <li>
<div class="plussers">
<div class="nav-header">++ed by:</div>
<div>
<a class="display-all" href="https://metacpan.org/author/AYOUNG"><img src="https://www.gravatar.com/avatar/8d1e4946c288fbe87d1e0394f3e41b24?d=identicon&amp;s=20" title="AYOUNG" alt="AYOUNG"></a>
<a class="display-all" href="https://metacpan.org/author/DAGOLDEN"><img src="https://www.gravatar.com/avatar/bb755c989fcb9897f28a2c6e00df61e2?d=identicon&amp;s=20" title="DAGOLDEN" alt="DAGOLDEN"></a>
</div>
<!-- Display counts of plussers-->
<div>
    <a href="https://metacpan.org/dist/Email-Abstract/plussers">2 PAUSE users</a>
</div>
<div>
    1 non-PAUSE user
</div>
</div>
    </li>
    <li>
<div id="metacpan_contributors">
  <div>
    <button class="btn-link"
      onclick="$(this).hide(); $('#metacpan_contributors ul').slideDown(); return false;"
    >and 5 contributors</button>
  </div>
  <ul style="display: none">
    <li class="contributor"
      data-cpan-author="SIMON"
      data-contrib-email="simon@cpan.org"
    >
      <a href="https://metacpan.org/author/SIMON" class="cpan-author">
      <img class="gravatar" width="20" height="20" src="https://www.gravatar.com/avatar/e8b1f2c0077be8a15af0f08b55d59a36?d=identicon&amp;s=20" />
      Simon Cozens
      </a>
    </li>
    <li class="contributor"
      data-cpan-author="CWEST"
      data-contrib-email="casey@geeknest.com"
    >
      <a href="https://metacpan.org/author/CWEST" class="cpan-author">
      <img class="gravatar" width="20" height="20" src="https://www.gravatar.com/avatar/b3bb9984adabb61d974f96965b2ed074?d=identicon&amp;s=20" />
      Casey West
      </a>
    </li>
    <li class="contributor"
      data-cpan-author="DROLSKY"
      data-contrib-email="autarch@urth.org"
    >
      <a href="https://metacpan.org/author/DROLSKY" class="cpan-author">
      <img class="gravatar" width="20" height="20" src="https://www.gravatar.com/avatar/1401e7f176d9e13ad2a9380ecd1f18f6?d=identicon&amp;s=20" />
      Dave Rolsky
      </a>
    </li>
    <li class="contributor"
      data-contrib-email="rjbs@semiotic.systems"
    >
      <img class="gravatar" width="20" height="20" src="https://www.gravatar.com/avatar/d41d8cd98f00b204e9800998ecf8427e?d=identicon&amp;s=20" />
      Ricardo Signes
    </li>
    <li class="contributor"
      data-contrib-email="pep@veggiechinese.net"
    >
      <img class="gravatar" width="20" height="20" src="https://www.gravatar.com/avatar/d41d8cd98f00b204e9800998ecf8427e?d=identicon&amp;s=20" />
      William Yardley
    </li>
  </ul>
</div>
    </li>
              </ul>
            </div>
          </nav>
          <div class="content-navigation">
<div class="breadcrumbs">
  <span>
    <a data-keyboard-shortcut="g a" rel="author" href="https://metacpan.org/author/RJBS" class="author-name">Ricardo SIGNES 😄</a>
  </span>
  <span>&nbsp;/&nbsp;</span>
  <div class="release dist-release status-latest maturity-released">
    <span class="dropdown"><b class="caret"></b></span>
<select onchange="document.location.href=&#39;/release/&#39;+this.value+&#39;/view/lib/Email/Abstract.pm&#39;" class="">
<option
  selected
  value="RJBS/Email-Abstract-3.010"
>3.010
  (RJBS on 2023-09-03)</option>
<option
  
  value="RJBS/Email-Abstract-3.009"
>3.009
  (RJBS on 2021-06-20)</option>
<option
  
  value="CWEST/Email-Abstract-2.01"
>2.01
  (CWEST on 2004-11-05)</option>
<option
  
  value="SIMON/Email-Abstract-2.0"
>2.0
  (SIMON on 2004-08-25)</option>
<option
  
  value="SIMON/Email-Abstract-1.0"
>1.0
  (SIMON on 2004-05-27)</option>
<optgroup label="BackPAN">'
<option
  
  value="RJBS/Email-Abstract-3.008"
>3.008
  (RJBS on 2014-12-27)</option>
<option
  
  value="RJBS/Email-Abstract-3.007"
>3.007
  (RJBS on 2013-12-31)</option>
<option
  
  value="RJBS/Email-Abstract-3.006"
>3.006
  (RJBS on 2013-09-01)</option>
<option
  
  value="RJBS/Email-Abstract-3.005"
>3.005
  (RJBS on 2013-07-30)</option>
<option
  
  value="RJBS/Email-Abstract-3.004"
>3.004
  (RJBS on 2011-02-18)</option>
<option
  
  value="RJBS/Email-Abstract-3.003"
>3.003
  (RJBS on 2010-11-08)</option>
<option
  
  value="RJBS/Email-Abstract-3.002"
>3.002
  (RJBS on 2010-06-12)</option>
<option
  
  value="RJBS/Email-Abstract-3.001"
>3.001
  (RJBS on 2008-12-11)</option>
<option
  
  value="RJBS/Email-Abstract-3.000"
>3.000
  (RJBS on 2008-12-09)</option>
<option
  
  value="RJBS/Email-Abstract-2.134"
>2.134
  (RJBS on 2007-11-16)</option>
<option
  
  value="RJBS/Email-Abstract-2.133_05"
>2.133_05 DEV
  (RJBS on 2007-11-12)</option>
<option
  
  value="RJBS/Email-Abstract-2.133_04"
>2.133_04 DEV
  (RJBS on 2007-09-24)</option>
<option
  
  value="RJBS/Email-Abstract-2.133_03"
>2.133_03 DEV
  (RJBS on 2007-08-01)</option>
<option
  
  value="RJBS/Email-Abstract-2.133_02"
>2.133_02 DEV
  (RJBS on 2007-07-23)</option>
<option
  
  value="RJBS/Email-Abstract-2.133_01"
>2.133_01 DEV
  (RJBS on 2007-07-19)</option>
<option
  
  value="RJBS/Email-Abstract-2.132"
>2.132
  (RJBS on 2007-03-22)</option>
<option
  
  value="RJBS/Email-Abstract-2.131"
>2.131
  (RJBS on 2006-08-22)</option>
<option
  
  value="RJBS/Email-Abstract-2.13"
>2.13
  (RJBS on 2006-07-24)</option>
<option
  
  value="RJBS/Email-Abstract-2.12"
>2.12
  (RJBS on 2006-07-24)</option>
<option
  
  value="RJBS/Email-Abstract-2.11"
>2.11
  (RJBS on 2006-07-22)</option>
<option
  
  value="RJBS/Email-Abstract-2.10"
>2.10
  (RJBS on 2006-07-21)</option>
</optgroup>
</select>
    <a data-keyboard-shortcut="g d" class="release-name" href="https://metacpan.org/dist/Email-Abstract">Email-Abstract-3.010</a>
  </div>
<span class="river-gauge-gauge">
  <svg width="24px"
       height="15px"
       version="1.1"
       xmlns="http://www.w3.org/2000/svg"
       xmlns:xlink="http://www.w3.org/1999/xlink">

    <g>
      <title>        River stage three &#10;
          • 25 direct dependents &#10;          • 225 total dependents
      </title>

      <rect x="0"  y="0" width="4" height="15" fill="#7ea3f2" />
      <rect x="5"  y="0" width="4" height="15" fill="#7ea3f2" />
      <rect x="10"  y="0" width="4" height="15" fill="#7ea3f2" />
      <rect x="15"  y="0" width="4" height="15" fill="#e4e2e2" />
      <rect x="20"  y="0" width="4" height="15" fill="#e4e2e2" />
    </g>
  </svg>

</span>
<div id="Email-Abstract-fav" class="logged_in">
<form action="https://metacpan.org/account/favorite/add" style="display: inline" onsubmit="return favDistribution(this)">
    <input type="hidden" name="remove" value="0">
    <input type="hidden" name="release" value="Email-Abstract-3.010">
    <input type="hidden" name="author" value="RJBS">
    <input type="hidden" name="distribution" value="Email-Abstract">
    <button type="submit" class="favorite highlight"><span>3</span> ++</button>
</form>
</div>
<div class="logged_out">
<a href="./Email::Abstract.html" onclick="alert('Please sign in to add favorites'); return false" class="favorite highlight">
<span>3</span> ++</a>
</div>
   / <span>Email::Abstract</span>
</div>
          </div>
          <main class="content">


<nav class="toc">
  <div class="toc-header"><strong>Contents</strong></div>
<ul>
  <li><a href="./Email::Abstract.html#NAME">NAME</a></li>
  <li><a href="./Email::Abstract.html#VERSION">VERSION</a></li>
  <li><a href="./Email::Abstract.html#SYNOPSIS">SYNOPSIS</a></li>
  <li><a href="./Email::Abstract.html#DESCRIPTION">DESCRIPTION</a></li>
  <li><a href="./Email::Abstract.html#PERL-VERSION">PERL VERSION</a></li>
  <li><a href="./Email::Abstract.html#METHODS">METHODS</a>
    <ul>
      <li><a href="./Email::Abstract.html#new">new</a></li>
      <li><a href="./Email::Abstract.html#get_header">get_header</a></li>
      <li><a href="./Email::Abstract.html#set_header">set_header</a></li>
      <li><a href="./Email::Abstract.html#get_body">get_body</a></li>
      <li><a href="./Email::Abstract.html#set_body">set_body</a></li>
      <li><a href="./Email::Abstract.html#as_string">as_string</a></li>
      <li><a href="./Email::Abstract.html#cast">cast</a></li>
      <li><a href="./Email::Abstract.html#object">object</a></li>
    </ul>
  </li>
  <li><a href="./Email::Abstract.html#AUTHORS">AUTHORS</a></li>
  <li><a href="./Email::Abstract.html#CONTRIBUTORS">CONTRIBUTORS</a></li>
  <li><a href="./Email::Abstract.html#COPYRIGHT-AND-LICENSE">COPYRIGHT AND LICENSE</a></li>
</ul></nav>
<div class="pod anchors">
<h1 id="NAME">NAME</h1>

<p>Email::Abstract - unified interface to mail representations</p>

<h1 id="VERSION">VERSION</h1>

<p>version 3.010</p>

<h1 id="SYNOPSIS">SYNOPSIS</h1>

<pre><code>  my $message = Mail::Message-&gt;read($rfc822)
             || Email::Simple-&gt;new($rfc822)
             || Mail::Internet-&gt;new([split /\n/, $rfc822])
             || ...
             || $rfc822;

  my $email = Email::Abstract-&gt;new($message);

  my $subject = $email-&gt;get_header(&quot;Subject&quot;);
  $email-&gt;set_header(Subject =&gt; &quot;My new subject&quot;);

  my $body = $email-&gt;get_body;

  $rfc822 = $email-&gt;as_string;

  my $mail_message = $email-&gt;cast(&quot;Mail::Message&quot;);</code></pre>

<h1 id="DESCRIPTION">DESCRIPTION</h1>

<p><code>Email::Abstract</code> provides module writers with the ability to write simple, representation-independent mail handling code. For instance, in the cases of <code>Mail::Thread</code> or <code>Mail::ListDetector</code>, a key part of the code involves reading the headers from a mail object. Where previously one would either have to specify the mail class required, or to build a new object from scratch, <code>Email::Abstract</code> can be used to perform certain simple operations on an object regardless of its underlying representation.</p>

<p><code>Email::Abstract</code> currently supports <code>Mail::Internet</code>, <code>MIME::Entity</code>, <code>Mail::Message</code>, <code>Email::Simple</code>, <code>Email::MIME</code>, and <code>Courriel</code>. Other representations are encouraged to create their own <code>Email::Abstract::*</code> class by copying <code>Email::Abstract::EmailSimple</code>. All modules installed under the <code>Email::Abstract</code> hierarchy will be automatically picked up and used.</p>

<h1 id="PERL-VERSION"><a id="PERL"></a>PERL VERSION</h1>

<p>This library should run on perls released even a long time ago. It should work on any version of perl released in the last five years.</p>

<p>Although it may work on older versions of perl, no guarantee is made that the minimum required version will not be increased. The version may be increased for any reason, and there is no promise that patches will be accepted to lower the minimum required perl.</p>

<h1 id="METHODS">METHODS</h1>

<p>All of these methods may be called either as object methods or as class methods. When called as class methods, the email object (of any class supported by Email::Abstract) must be prepended to the list of arguments, like so:</p>

<pre><code>  my $return = Email::Abstract-&gt;method($message, @args);</code></pre>

<p>This is provided primarily for backwards compatibility.</p>

<h2 id="new">new</h2>

<pre><code>  my $email = Email::Abstract-&gt;new($message);</code></pre>

<p>Given a message, either as a string or as an object for which an adapter is installed, this method will return a Email::Abstract object wrapping the message.</p>

<p>If the message is given as a string, it will be used to construct an object, which will then be wrapped.</p>

<h2 id="get_header">get_header</h2>

<pre><code>  my $header  = $email-&gt;get_header($header_name);

  my @headers = $email-&gt;get_header($header_name);</code></pre>

<p>This returns the values for the given header. In scalar context, it returns the first value.</p>

<h2 id="set_header">set_header</h2>

<pre><code>  $email-&gt;set_header($header =&gt; @values);</code></pre>

<p>This sets the <code>$header</code> header to the given one or more values.</p>

<h2 id="get_body">get_body</h2>

<pre><code>  my $body = $email-&gt;get_body;</code></pre>

<p>This returns the body as a string.</p>

<h2 id="set_body">set_body</h2>

<pre><code>  $email-&gt;set_body($string);</code></pre>

<p>This changes the body of the email to the given string.</p>

<p><b>WARNING!</b> You probably don&#39;t want to call this method, despite what you may think. Email message bodies are complicated, and rely on things like content type, encoding, and various MIME requirements. If you call <code>set_body</code> on a message more complicated than a single-part seven-bit plain-text message, you are likely to break something. If you need to do this sort of thing, you should probably use a specific message class from end to end.</p>

<p>This method is left in place for backwards compatibility.</p>

<h2 id="as_string">as_string</h2>

<pre><code>  my $string = $email-&gt;as_string;</code></pre>

<p>This returns the whole email as a decoded string.</p>

<h2 id="cast">cast</h2>

<pre><code>  my $mime_entity = $email-&gt;cast(&#39;MIME::Entity&#39;);</code></pre>

<p>This method will convert a message from one message class to another. It will throw an exception if no adapter for the target class is known, or if the adapter does not provide a <code>construct</code> method.</p>

<h2 id="object">object</h2>

<pre><code>  my $message = $email-&gt;object;</code></pre>

<p>This method returns the message object wrapped by Email::Abstract. If called as a class method, it returns false.</p>

<p>Note that, because strings are converted to message objects before wrapping, this method will return an object when the Email::Abstract was constructed from a string.</p>

<h1 id="AUTHORS">AUTHORS</h1>

<ul>

<li><p>Ricardo SIGNES &lt;cpan@semiotic.systems&gt;</p>

</li>
<li><p>Simon Cozens &lt;simon@cpan.org&gt;</p>

</li>
<li><p>Casey West &lt;casey@geeknest.com&gt;</p>

</li>
</ul>

<h1 id="CONTRIBUTORS">CONTRIBUTORS</h1>

<ul>

<li><p>Dave Rolsky &lt;autarch@urth.org&gt;</p>

</li>
<li><p>Ricardo Signes &lt;rjbs@semiotic.systems&gt;</p>

</li>
<li><p>William Yardley &lt;pep@veggiechinese.net&gt;</p>

</li>
</ul>

<h1 id="COPYRIGHT-AND-LICENSE"><a id="COPYRIGHT"></a>COPYRIGHT AND LICENSE</h1>

<p>This software is copyright (c) 2004 by Simon Cozens.</p>

<p>This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.</p></div>

<div id="metacpan_install-instructions-dialog" class="modal fade">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
        <h4 class="modal-title">Module Install Instructions</h4>
      </div>
      <div class="modal-body">
        <p>To install Email::Abstract, copy and paste the appropriate command in to your terminal.</p>
        <p><a href="https://metacpan.org/dist/App-cpanminus/view/bin/cpanm">cpanm</a></p>
        <pre><code>cpanm Email::Abstract</code></pre>
        <p><a href="https://metacpan.org/pod/CPAN">CPAN shell</a></p>
        <pre><code>perl -MCPAN -e shell
install Email::Abstract</code></pre>
        <p>For more information on module installation, please visit <a href="https://www.cpan.org/modules/INSTALL.html">the detailed CPAN module installation guide</a>.</p>
      </div>
      <div class="modal-footer">
        <a href="./Email::Abstract.html#" data-dismiss="modal" class="btn">Close</a>
      </div>
    </div>
  </div>
</div>
          </main>
          <div class="content-pagination">
          </div>
        </div>
        <footer class="footer">
          <div class="footer-container">
            <div class="footer-social">
              <div class="footer-link footer-logo">
                <a href="https://metacpan.org/">
                  <img src="https://metacpan.org/static/images/metacpan-logo.svg" alt="MetaCPAN" />
                </a>
              </div>
              <a class="footer-social-link" href="https://github.com/metacpan">
                <i class="fab fa-github-square"></i>
              </a>
              <a class="footer-social-link" href="https://fosstodon.org/@metacpan">
                <i class="fab fa-mastodon"></i>
              </a>
            </div>
            <div class="footer-links">
              <div class="footer-link">
                  <a href="https://metacpan.org/about">About</a>
              </div>
              <div class="footer-link">
                  <a href="https://metacpan.org/about/sponsors">Sponsor</a>
              </div>
              <div class="footer-link">
                  <a href="https://grep.metacpan.org">grep::cpan</a>
              </div>
              <div class="footer-link">
                  <a href="https://metacpan.org/recent">Recent</a>
              </div>
              <div class="footer-link">
                  <a href="https://metacpan.org/about/faq">FAQ</a>
              </div>
              <div class="footer-link">
                  <a href="https://metacpan.org/tools">Tools</a>
              </div>
              <div class="footer-link">
                  <a href="https://fastapi.metacpan.org/">API</a>
              </div>
              <div class="footer-link">
                  <a href="https://www.perl.org/">Perl.org</a>
              </div>
            </div>
            <div class="footer-sponsors">
              <a class="footer-sponsor-link" target="_blank" href="https://www.bytemark.co.uk/" rel="noopener">
                <img class="footer-sponsor-bytemark" src="https://metacpan.org/static/images/sponsors/bytemark_logo.svg" alt="Bytemark logo">
              </a>
              <a class="footer-sponsor-link" target="_blank" href="https://www.liquidweb.com/" rel="noopener">
                <img class="footer-sponsor-liquidweb" src="https://metacpan.org/static/images/sponsors/liquidweb_logo.png" alt="liquidweb logo">
              </a>
              <a class="footer-sponsor-link" target="_blank" href="https://deriv.com/careers/" rel="noopener">
                <img class="footer-sponsor-deriv" src="https://metacpan.org/static/images/sponsors/deriv.svg" alt="Deriv logo">
              </a>
              <a class="footer-sponsor-link" target="_blank" href="https://geocode.xyz" rel="noopener">
                <img class="footer-sponsor-geocode" src="https://metacpan.org/static/images/sponsors/geocodelogo.svg" alt="Geocode logo">
              </a>
              <a class="footer-sponsor-link" target="_blank" href="https://www.fastly.com/" rel="noopener">
                <img class="footer-sponsor-fastly" src="https://metacpan.org/static/images/sponsors/fastly_logo.svg" alt="Fastly logo">
              </a>
              <a class="footer-sponsor-link" target="_blank" href="https://opencagedata.com" rel="noopener">
                <img class="footer-sponsor-opencage" src="https://metacpan.org/static/images/sponsors/open-cage.svg" alt="OpenCage logo">
              </a>
            </div>
          </div>
        </footer>
        <div class="modal fade" tabindex="-1" role="dialog" id="metacpan_keyboard-shortcuts">
          <div class="modal-dialog">
            <div class="modal-content">
              <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal">&times;</button>
                <h4 class="modal-title">Keyboard Shortcuts</h4>
              </div>
              <div class="modal-body row">
<div class="col-md-6">
  <table class="table keyboard-shortcuts">
    <thead>
      <tr>
        <th></th>
        <th>Global</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td class="keys">
          <kbd>s</kbd>
        </td>
        <td>Focus search bar</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>?</kbd>
        </td>
        <td>Bring up this help dialog</td>
      </tr>
    </tbody>
  </table>

  <table class="table keyboard-shortcuts">
    <thead>
      <tr>
        <th></th>
        <th>GitHub</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>p</kbd>
        </td>
        <td>Go to pull requests</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>i</kbd>
        </td>
        <td>go to github issues (only if github is preferred repository)</td>
      </tr>
    </tbody>
  </table>
</div>

<div class="col-md-6">
  <table class="table keyboard-shortcuts">
    <thead>
      <tr>
        <th></th>
        <th>POD</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>a</kbd>
        </td>
        <td>Go to author</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>c</kbd>
        </td>
        <td>Go to changes</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>i</kbd>
        </td>
        <td>Go to issues</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>d</kbd>
        </td>
        <td>Go to dist</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>r</kbd>
        </td>
        <td>Go to repository/SCM</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>s</kbd>
        </td>
        <td>Go to source</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>b</kbd>
        </td>
        <td>Go to file browse</td>
      </tr>

    </tbody>
  </table>
</div>

<div class="col-md-12">
  <table class="table keyboard-shortcuts">
    <thead>
      <tr>
        <th></th>
        <th>Search terms</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><em>module:</em> (e.g. <a href="https://metacpan.org/search?q=module%3APlugin">module:Plugin</a>)</td>
      </tr>
      <tr>
        <td><em>distribution:</em> (e.g. <a href="https://metacpan.org/search?q=distribution%3ADancer+auth">distribution:Dancer auth</a>)</td>
      </tr>
      <tr>
        <td><em>author:</em> (e.g. <a href="https://metacpan.org/search?q=author%3ASONGMU+Redis">author:SONGMU Redis</a>)</td>
      </tr>
      <tr>
        <td><em>version:</em> (e.g. <a href="https://metacpan.org/search?q=version%3A1.00">version:1.00</a>)</td>
      </tr>
    </tbody>
  </table>
</div>
              </div>
              <div class="modal-footer"></div>
            </div>
          </div>
        </div>
    </body>
</html>
